package br.com.linhadotempo.struts2;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;

import br.com.linhadotempo.dao.FatoDAO;
import br.com.linhadotempo.dao.UsuarioDAO;
import br.com.linhadotempo.util.Mensagens;
import br.com.linhadotempo.util.Sessao;
import br.com.linhadotempo.util.Util;
import br.com.taimlain.modelo.Usuario;

import com.opensymphony.xwork2.ActionSupport;

public class RemoveAction extends ActionSupport{
	
	Mensagens msgs = Mensagens.getInstance();
	private Integer id;
	
	/*
	 * Action para remover um usuario
	 */
	@Action(value = "removeUser", results = { @Result(name = SUCCESS, location = Util.LOGIN_JSP) })
	public String removeUser() {
		try {
			Sessao.removeMessages();

			new UsuarioDAO().remover(id);
			Sessao.limpar();

			msgs.setSuccess("Sua conta foi removida com sucesso!");
			Sessao.put(Util.MESSAGES, msgs);
			return SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			Mensagens.getInstance().tratarExceptions(e);
			return null;
		}
	}
	
	/*
	 * Action para remover um fato
	 */
	@Action(value = "removeFato", results = { @Result(name = SUCCESS, type = "httpheader", params = {
			"status", "200" }) })
	public String removeFato() {
		try {
			Sessao.removeMessages();

			new FatoDAO().remover(id);
			Usuario usuario = (Usuario) Sessao.get(Util.USUARIO);
			Sessao.put(Util.USUARIO, new UsuarioDAO().get(usuario.getId()));

			msgs.setSuccess("Fato removido com sucesso!");
			Sessao.put(Util.MESSAGES, msgs);
			return SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			Mensagens.getInstance().tratarExceptions(e);
			return null;
		}
	}
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	private static final long serialVersionUID = 8648544246624446812L;
}
